#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
JPG转PNG图片转换脚本
将当前文件夹下的所有JPG格式图片转换为PNG格式
"""

import os
import sys
from PIL import Image
import glob

def convert_jpg_to_png():
    """
    将当前文件夹下的所有JPG图片转换为PNG格式
    """
    # 获取当前脚本所在目录
    current_dir = os.path.dirname(os.path.abspath(__file__))
    
    # 支持的JPG格式扩展名
    jpg_extensions = ['*.jpg', '*.jpeg', '*.JPG', '*.JPEG']
    
    # 查找所有JPG文件
    jpg_files = []
    for ext in jpg_extensions:
        jpg_files.extend(glob.glob(os.path.join(current_dir, ext)))
    
    if not jpg_files:
        print("当前文件夹下没有找到JPG格式的图片文件。")
        return
    
    print(f"找到 {len(jpg_files)} 个JPG文件，开始转换...")
    
    converted_count = 0
    failed_count = 0
    
    for jpg_file in jpg_files:
        try:
            # 打开JPG图片
            with Image.open(jpg_file) as img:
                # 如果图片模式是RGBA，保持透明通道
                if img.mode in ('RGBA', 'LA'):
                    # 保持透明通道
                    pass
                elif img.mode in ('P', 'L'):
                    # 转换为RGB模式
                    img = img.convert('RGB')
                
                # 生成PNG文件名
                file_name = os.path.splitext(os.path.basename(jpg_file))[0]
                png_file = os.path.join(current_dir, f"{file_name}.png")
                
                # 保存为PNG格式
                img.save(png_file, 'PNG', optimize=True)
                
                # 删除原始JPG文件
                os.remove(jpg_file)
                
                print(f"✓ 已转换并删除: {os.path.basename(jpg_file)} -> {os.path.basename(png_file)}")
                converted_count += 1
                
        except Exception as e:
            print(f"✗ 转换失败: {os.path.basename(jpg_file)} - 错误: {str(e)}")
            failed_count += 1
    
    print(f"\n转换完成!")
    print(f"成功转换: {converted_count} 个文件")
    if failed_count > 0:
        print(f"转换失败: {failed_count} 个文件")

def main():
    """
    主函数
    """
    print("JPG转PNG图片转换工具")
    print("=" * 30)
    
    # 检查是否安装了PIL库
    try:
        from PIL import Image
    except ImportError:
        print("错误: 未安装PIL库，请先安装:")
        print("pip install Pillow")
        print("\n按回车键退出...")
        input()
        sys.exit(1)
    
    # 执行转换
    convert_jpg_to_png()
    
    print("\n转换完成！按回车键退出...")
    input()

if __name__ == "__main__":
    main()
